<?php
/**
 * Soms wil je een array van landen met als key=>value code=>naam
 * Met regexp kun je makkelijk deze values eruit parsen 
 * Hier een rechtstreekse copy paste van http://en.wikipedia.org/wiki/ISO_3166-1_alpha-2
 */

// heredoc assignment ter illustratie, had ook gewoon tussen quotes gekund ;-) 
$copyPasteFromWiki = <<<CNT
Alpha-2	Country name	Since	Notes
AD	Andorra	1974	
AE	United Arab Emirates	1974	
AF	Afghanistan	1974	
AG	Antigua and Barbuda	1974	
AI	Anguilla	1983	AI previously represented French Afar and Issas
AL	Albania	1974	
AM	Armenia	1992	
AN	Netherlands Antilles	1974	
AO	Angola	1974	
AQ	Antarctica	1974	Covers the territories south of 60� south latitude
Code taken from name in French: Antarctique
AR	Argentina	1974	
AS	American Samoa	1974	
AT	Austria	1974	
AU	Australia	1974	Includes the Ashmore and Cartier Islands and the Coral Sea Islands
AW	Aruba	1986	
AX	Aland Islands	2004	
AZ	Azerbaijan	1992	
BA	Bosnia and Herzegovina	1992	
BB	Barbados	1974	
BD	Bangladesh	1974	
BE	Belgium	1974	
BF	Burkina Faso	1984	Name changed from Upper Volta (HV)
BG	Bulgaria	1974	
BH	Bahrain	1974	
BI	Burundi	1974	
BJ	Benin	1977	Name changed from Dahomey (DY)
BL	Saint Bartholemy	2007	
BM	Bermuda	1974	
BN	Brunei Darussalam	1974	
BO	Bolivia, Plurinational State of	1974	Previous country name used by ISO: Bolivia
BR	Brazil	1974	
BS	Bahamas	1974	
BT	Bhutan	1974	
BV	Bouvet Island	1974	
BW	Botswana	1974	
BY	Belarus	1974	Code taken from previous country name used by ISO: Byelorussian SSR
BZ	Belize	1974	
CA	Canada	1974	
CC	Cocos (Keeling) Islands	1974	
CD	Congo, the Democratic Republic of the	1997	Name changed from Zaire (ZR)
CF	Central African Republic	1974	
CG	Congo	1974	i.e., Congo, the Republic of the
CH	Switzerland	1974	Code taken from name in Latin: Confoederatio Helvetica
CI	Côte d'Ivoire	1974	i.e., Ivory Coast
CK	Cook Islands	1974	
CL	Chile	1974	
CM	Cameroon	1974	
CN	China	1974	
CO	Colombia	1974	
CR	Costa Rica	1974	
CU	Cuba	1974	
CV	Cape Verde	1974	
CX	Christmas Island	1974	
CY	Cyprus	1974	
CZ	Czech Republic	1993	
DE	Germany	1974	Code taken from name in German: Deutschland
Code used for West Germany before 1990 (previous country name used by ISO: Germany, Federal Republic of)
DJ	Djibouti	1977	Name changed from French Afar and Issas (AI)
DK	Denmark	1974	
DM	Dominica	1974	
DO	Dominican Republic	1974	
DZ	Algeria	1974	Code taken from name in Kabyle: Dzayer
EC	Ecuador	1974	
EE	Estonia	1992	Code taken from name in Estonian: Eesti
EG	Egypt	1974	
EH	Western Sahara	1974	Disputed territory
Previous country name used by ISO: Spanish Sahara (code taken from name in Spanish: Sahara espa�ol)
ER	Eritrea	1993	
ES	Spain	1974	Code taken from name in Spanish: Espa�a
ET	Ethiopia	1974	
FI	Finland	1974	
FJ	Fiji	1974	
FK	Falkland Islands (Malvinas)	1974	
FM	Micronesia, Federated States of	1986	Previous country name used by ISO: Micronesia
FO	Faroe Islands	1974	
FR	France	1974	Includes Clipperton Island
GA	Gabon	1974	
GB	United Kingdom	1974	Code taken from official name: United Kingdom of Great Britain and Northern Ireland
UK also exceptionally reserved on request of the United Kingdom
GD	Grenada	1974	
GE	Georgia	1992	GE previously represented Gilbert and Ellice Islands
GF	French Guiana	1974	Code taken from name in French: Guyane fran�aise
GG	Guernsey	2006	
GH	Ghana	1974	
GI	Gibraltar	1974	
GL	Greenland	1974	
GM	Gambia	1974	
GN	Guinea	1974	
GP	Guadeloupe	1974	
GQ	Equatorial Guinea	1974	Code taken from name in French: Guin�e �quatoriale
GR	Greece	1974	
GS	South Georgia and the South Sandwich Islands	1993	
GT	Guatemala	1974	
GU	Guam	1974	
GW	Guinea-Bissau	1974	
GY	Guyana	1974	
HK	Hong Kong	1974	
HM	Heard Island and McDonald Islands	1974	
HN	Honduras	1974	
HR	Croatia	1992	Code taken from name in Croatian: Hrvatska
HT	Haiti	1974	
HU	Hungary	1974	
ID	Indonesia	1974	
IE	Ireland	1974	
IL	Israel	1974	
IM	Isle of Man	2006	
IN	India	1974	
IO	British Indian Ocean Territory	1974	
IQ	Iraq	1974	
IR	Iran, Islamic Republic of	1974	
IS	Iceland	1974	Code taken from name in Icelandic: �sland
IT	Italy	1974	
JE	Jersey	2006	
JM	Jamaica	1974	
JO	Jordan	1974	
JP	Japan	1974	
KE	Kenya	1974	
KG	Kyrgyzstan	1992	
KH	Cambodia	1974	Code taken from former name: Khmer Republic
Previous country name used by ISO: Kampuchea
KI	Kiribati	1979	
KM	Comoros	1974	Code taken from name in Comorian: Komori
KN	Saint Kitts and Nevis	1974	Previous country name used by ISO: Saint Kitts-Nevis-Anguilla
KP	Korea, Democratic People's Republic of	1974	i.e., North Korea
KR	Korea, Republic of	1974	i.e., South Korea
KW	Kuwait	1974	
KY	Cayman Islands	1974	
KZ	Kazakhstan	1992	Previous country name used by ISO: Kazakstan
LA	Lao People's Democratic Republic	1974	
LB	Lebanon	1974	
LC	Saint Lucia	1974	
LI	Liechtenstein	1974	
LK	Sri Lanka	1974	
LR	Liberia	1974	
LS	Lesotho	1974	
LT	Lithuania	1992	
LU	Luxembourg	1974	
LV	Latvia	1992	
LY	Libyan Arab Jamahiriya	1974	
MA	Morocco	1974	Code taken from name in French: Maroc
MC	Monaco	1974	
MD	Moldova, Republic of	1992	Previous country name used by ISO: Moldova
ME	Montenegro	2006	
MF	Saint Martin (French part)	2007	
MG	Madagascar	1974	
MH	Marshall Islands	1986	
MK	Macedonia, the former Yugoslav Republic of	1993	Designated as such due to the Macedonia naming dispute
Code taken from name in Macedonian: Makedonija
ML	Mali	1974	
MM	Myanmar	1989	Name changed from Burma (BU)
MN	Mongolia	1974	
MO	Macao	1974	Previous country name used by ISO: Macau
MP	Northern Mariana Islands	1986	
MQ	Martinique	1974	
MR	Mauritania	1974	
MS	Montserrat	1974	
MT	Malta	1974	
MU	Mauritius	1974	
MV	Maldives	1974	
MW	Malawi	1974	
MX	Mexico	1974	
MY	Malaysia	1974	
MZ	Mozambique	1974	
NA	Namibia	1974	
NC	New Caledonia	1974	
NE	Niger	1974	
NF	Norfolk Island	1974	
NG	Nigeria	1974	
NI	Nicaragua	1974	
NL	Netherlands	1974	
NO	Norway	1974	
NP	Nepal	1974	
NR	Nauru	1974	
NU	Niue	1974	
NZ	New Zealand	1974	
OM	Oman	1974	
PA	Panama	1974	
PE	Peru	1974	
PF	French Polynesia	1974	Code taken from name in French: Polyn�sie fran�aise
PG	Papua New Guinea	1974	
PH	Philippines	1974	
PK	Pakistan	1974	
PL	Poland	1974	
PM	Saint Pierre and Miquelon	1974	
PN	Pitcairn	1974	
PR	Puerto Rico	1974	
PS	Palestinian Territory, Occupied	1999	Consists of the West Bank and the Gaza Strip
PT	Portugal	1974	
PW	Palau	1986	
PY	Paraguay	1974	
QA	Qatar	1974	
RE	Réunion	1974	
RO	Romania	1974	
RS	Serbia	2006	Code taken from official name: Republic of Serbia (see Serbian country codes)
RU	Russian Federation	1992	
RW	Rwanda	1974	
SA	Saudi Arabia	1974	
SB	Solomon Islands	1974	Code taken from former name: British Solomon Islands
SC	Seychelles	1974	
SD	Sudan	1974	
SE	Sweden	1974	
SG	Singapore	1974	
SH	Saint Helena, Ascension and Tristan da Cunha	1974	Previous country name used by ISO: Saint Helena
SI	Slovenia	1992	
SJ	Svalbard and Jan Mayen	1974	Consists of Svalbard and Jan Mayen
SK	Slovakia	1993	SK previously represented Sikkim
SL	Sierra Leone	1974	
SM	San Marino	1974	
SN	Senegal	1974	
SO	Somalia	1974	
SR	Suriname	1974	
ST	Sao Tome and Principe	1974	
SV	El Salvador	1974	
SY	Syrian Arab Republic	1974	
SZ	Swaziland	1974	
TC	Turks and Caicos Islands	1974	
TD	Chad	1974	Code taken from name in French: Tchad
TF	French Southern Territories	1979	Covers the territory of the French Southern and Antarctic Lands except Ad�lie Land
Code taken from name in French: Terres australes fran�aises
TG	Togo	1974	
TH	Thailand	1974	
TJ	Tajikistan	1992	
TK	Tokelau	1974	
TL	Timor-Leste	2002	Name changed from East Timor (TP)
TM	Turkmenistan	1992	
TN	Tunisia	1974	
TO	Tonga	1974	
TR	Turkey	1974	
TT	Trinidad and Tobago	1974	
TV	Tuvalu	1979	
TW	Taiwan, Province of China	1974	Covers the current jurisdiction of the Republic of China except Kinmen and Lienchiang
Designated as such due to its political status within the United Nations
TZ	Tanzania, United Republic of	1974	
UA	Ukraine	1974	Previous country name used by ISO: Ukrainian SSR
UG	Uganda	1974	
UM	United States Minor Outlying Islands	1986	Consists of Baker Island, Howland Island, Jarvis Island, Johnston Atoll, Kingman Reef, Midway Islands, Navassa Island, Palmyra Atoll, and Wake Island
US	United States	1974	
UY	Uruguay	1974	
UZ	Uzbekistan	1992	
VA	Holy See (Vatican City State)	1974	Territory of the Holy See
Previous country name used by ISO: Vatican City State (Holy See)
VC	Saint Vincent and the Grenadines	1974	
VE	Venezuela, Bolivarian Republic of	1974	Previous country name used by ISO: Venezuela
VG	Virgin Islands, British	1974	
VI	Virgin Islands, U.S.	1974	
VN	Viet Nam	1974	
VU	Vanuatu	1980	Name changed from New Hebrides (NH)
WF	Wallis and Futuna	1974	
WS	Samoa	1974	Code taken from former name: Western Samoa
YE	Yemen	1974	Previous country name used by ISO: Yemen, Republic of
Code used for North Yemen before 1990
YT	Mayotte	1993	
ZA	South Africa	1974	Code taken from name in Dutch: Zuid-Afrika
ZM	Zambia	1974	
ZW	Zimbabwe	1980	Name changed from Southern Rhodesia (RH)
[edit]
CNT;

/**
 * Uitleg over deze regexp:
 *  
 * Ik wil alle regels uit deze txt die beginnen met 2 hoofdletters, gevold door een aantal whitespaces en de naam is alles tot het jaartal
 * 
 *  normaal match je het begin met ^ vooraan de regexp, maar in dit geval is vooraan hetzelfde als een enter (\n in linux, \r\n in windows en \r is mac (deprecated?))
 *  als escape gebruik ik de backtick `
 *  de modifier s gebruik ik om ook newlines te matchen.
 *  Ik had wel de ^ kunnen gebruiken icm de m modifier (zie comment onder regexp)
 *  Behalve deze 2 zijn de e en de i modifiers nog veel gebruikt (http://www.php.net/manual/en/reference.pcre.pattern.modifiers.php)
 * 
 *  Het eerste deel (tussen haakjes)
 * 	[A-Z]{2} matched 2 hoofdletters
 * 
 *  Vervolgens 1 of meer whitespaces  
 *  \s+
 *  
 *  Daarna een ungriedy match all (except newline). Als het griedy was geweest had die alles gematched van de eerste lettercode (AD) tot aan de 1980 van Zimbabwe. 
 *  Met de m modifier was dit niet nodig geweest
 *  [^\n]*?
 *  
 *  Vervolgens een op meer spaties
 *  \s+
 *  
 *  En tenslotte het jaartal, niet om te gebruiken, maar om het einde van de landsnaam aan te duiden
 *  \d{4}
 *  
 */

$regexp = "`\n([A-Z]{2})\s+([^\n]*?)\s+\d{4}`s"; // ==
//$regexp = "`^([A-Z]{2})\s+([^\n]*)\s+\d{4}*`m";

preg_match_all($regexp, $copyPasteFromWiki, $matches); // $matches word aangemaakt als multidim array




/**
 * in het eerste element van matches (0) staat een array van alle strings die de hele regexp matchen
 * in het element 1 staan de landcodes (eerste haakjes)
 * in element 2 staan de landen 
 */ 
$countries = array_combine($matches[1], $matches[2]);

//3 letter codes

// 3 letter codes
$threeLetterCodes = "
AFGHANISTAN

Islamic State of Afghanistan

004	AFG	
AF

ALBANIA

Republic of Albania	008	ALB	
AL

ALGERIA

People's Democratic Republic of Algeria	012	DZA	
DZ

AMERICAN SAMOA

 	016	ASM	
AS

ANDORRA

Principality of Andorra	020	AND	
AD

ANGOLA

Republic of Angola	024	AGO	
AO

ANGUILLA

 	660	AIA	
AI

ANTARCTICA

 	010	ATA	
AQ

ANTIGUA AND BARBUDA

 	028	ATG	
AG

ARGENTINA

Argentine Republic	032	ARG	
AR

ARMENIA

Republic of Armenia	051	ARM	
AM

ARUBA

 	533	ABW	
AW

AUSTRALIA

 	036	AUS	
AU

AUSTRIA

Republic of Austria	040	AUT	
AT

AZERBAIJAN

Azerbaijani Republic	031	AZE	
AZ

BAHAMAS

Commonwealth of the Bahamas	044	BHS	
BS

BAHRAIN

State of Bahrain	048	BHR	
BH

BANGLADESH

People's Republic of Bangladesh	050	BGD	
BD

BARBADOS

 	052	BRB	
BB

BELARUS

Republic of Belarus	112	BLR	
BY

BELGIUM

Kingdom of Belgium	056	BEL	
BE

BELIZE

 	084	BLZ	
BZ

BENIN

Republic of Benin	204	BEN	
BJ

BERMUDA

 	060	BMU	
BM

BHUTAN

Kingdom of Bhutan	064	BTN	
BT

BOLIVIA

Republic of Bolivia	068	BOL	
BO

BOSNIA AND HERZEGOVINA

Republic of Bosnia and Herzegovina	070	BIH	
BA

BOTSWANA

Republic of Botswana	072	BWA	
BW

BOUVET ISLAND

 	074	BVT	
BV

BRAZIL

Federative Republic of Brazil	076	BRA	
BR

BRITISH INDIAN OCEAN TERRITORY

 	086	IOT	
IO

BRUNEI DARUSSALAM

 	096	BRN	
BN

BULGARIA

Republic of Bulgaria	100	BGR	
BG

BURKINA FASO

 	854	BFA	
BF

BURUNDI

Republic of Burundi	108	BDI	
BI

CAMBODIA

Kingdom of Cambodia	116	KHM	
KH

CAMEROON

Republic of Cameroon	120	CMR	
CM

CANADA

 	124	CAN	
CA

CAPE VERDE

Republic of Cape Verde	132	CPV	
CV

CAYMAN ISLANDS

 	136	CYM	
KY

CENTRAL AFRICAN REPUBLIC

 	140	CAF	
CF

CHAD

Republic of Chad	148	TCD	
TD

CHILE

Republic of Chile	152	CHL	
CL

CHINA

People's Republic of China	156	CHN	
CN

CHRISTMAS ISLAND

 	162	CXR	
CX

COCOS (KEELING) ISLANDS

 	166	CCK	
CC

COLOMBIA

Republic of Colombia	170	COL	
CO

COMOROS

Islamic Federal Republic of the Comoros	174	COM	
KM

CONGO

Republic of the Congo	178	COG	
CG

CONGO, THE DEMOCRATIC REPUBLIC OF THE

The Democratic Republic of the Congo	180	COD	
CD

COOK ISLANDS

 	184	COK	
CK

COSTA RICA

Republic of Costa Rica	188	CRI	
CR

CÔTE D'IVOIRE

Republic of Côte d'Ivoire	384	CIV	
CI

CROATIA

Republic of Croatia	191	HRV	
HR

CUBA

Republic of Cuba	192	CUB	
CU

CYPRUS

Republic of Cyprus	196	CYP	
CY

CZECH REPUBLIC

 	203	CZE	
CZ

DENMARK

Kingdom of Denmark	208	DNK	
DK

DJIBOUTI

Republic of Djibouti	262	DJI	
DJ

DOMINICA

Commonwealth of Dominica	212	DMA	
DM

DOMINICAN REPUBLIC

 	214	DOM	
DO

EAST TIMOR

 	626	TMP	
TP

ECUADOR

Republic of Ecuador	218	ECU	
EC

EGYPT

Arab Republic of Egypt	818	EGY	
EG

EL SALVADOR

Republic of El Salvador	222	SLV	
SV

EQUATORIAL GUINEA

Republic of Equatorial Guinea	226	GNQ	
GQ

ERITREA

 	232	ERI	
ER

ESTONIA

Republic of Estonia	233	EST	
EE

ETHIOPIA

Federal Democratic Republic of Ethiopia	231	ETH	
ET

FALKLAND ISLANDS (MALVINAS)

 	238	FLK	
FK

FAROE ISLANDS

 	234	FRO	
FO

FIJI

Republic of Fiji	242	FJI	
FJ

FINLAND

Republic of Finland	246	FIN	
FI

FRANCE

French Republic	250	FRA	
FR

FRENCH GUIANA

 	254	GUF	
GF

FRENCH POLYNESIA

 	258	PYF	
PF

FRENCH SOUTHERN TERRITORIES

 	260	ATF	
TF

GABON

Gabonese Republic	266	GAB	
GA

GAMBIA

Republic of the Gambia	270	GMB	
GM

GEORGIA

 	268	GEO	
GE

GERMANY

Federal Republic of Germany	276	DEU	
DE

GHANA

Republic of Ghana	288	GHA	
GH

GIBRALTAR

 	292	GIB	
GI

GREECE

Hellenic Republic	300	GRC	
GR

GREENLAND

 	304	GRL	
GL

GRENADA

 	308	GRD	
GD

GUADELOUPE

 	312	GLP	
GP

GUAM

 	316	GUM	
GU

GUATEMALA

Republic of Guatemala	320	GTM	
GT

GUINEA

Republic of Guinea	324	GIN	
GN

GUINEA-BISSAU

Republic of Guinea-Bissau	624	GNB	
GW

GUYANA

Republic of Guyana	328	GUY	
GY

HAITI

Republic of Haiti	332	HTI	
HT

HEARD ISLAND AND MCDONALD ISLANDS

 	334	HMD	
HM

HOLY SEE (VATICAN CITY STATE)

 	336	VAT	
VA

HONDURAS

Republic of Honduras	340	HND	
HN

HONG KONG

 	344	HKG	
HK

HUNGARY

Republic of Hungary	348	HUN	
HU

ICELAND

Republic of Iceland	352	ISL	
IS

INDIA

Republic of India	356	IND	
IN

INDONESIA

Republic of Indonesia	360	IDN	
ID

IRAN, ISLAMIC REPUBLIC OF

Islamic Republic of Iran	364	IRN	
IR

IRAQ

Republic of Iraq	368	IRQ	
IQ

IRELAND

 	372	IRL	
IE

ISRAEL

State of Israel	376	ISR	
IL

ITALY

Italian Republic	380	ITA	
IT

JAMAICA

 	388	JAM	
JM

JAPAN

 	392	JPN	
JP

JORDAN

Hashemite Kingdom of Jordan	400	JOR	
JO

KAZAKSTAN

Republic of Kazakstan	398	KAZ	
KZ

KENYA

Republic of Kenya	404	KEN	
KE

KIRIBATI

 	296	KIR	
KI

KOREA, DEMOCRATIC PEOPLE'S REPUBLIC OF

Democratic People's Republic of Korea	408	PRK	
KP

KOREA, REPUBLIC OF

Republic of Korea	410	KOR	
KR

KUWAIT

State of Kuwait	414	KWT	
KW

KYRGYZSTAN

Kyrgyz Republic	417	KGZ	
KG

LAO PEOPLE'S DEMOCRATIC REPUBLIC

 	418	LAO	
LA

LATVIA

Republic of Latvia	428	LVA	
LV

LEBANON

Lebanese Republic	422	LBN	
LB

LESOTHO

Kingdom of Lesotho	426	LSO	
LS

LIBERIA

Republic of Liberia	430	LBR	
LR

LIBYAN ARAB JAMAHIRIYA

Socialist People's Libyan Arab Jamahiriya	434	LBY	
LY

LIECHTENSTEIN

Principality of Liechtenstein	438	LIE	
LI

LITHUANIA

Republic of Lithuania	440	LTU	
LT

LUXEMBOURG

Grand Duchy of Luxembourg	442	LUX	
LU

MACAU

 	446	MAC	
MO

MACEDONIA, THE FORMER YUGOSLAV REPUBLIC OF

The former Yugoslav Republic of Macedonia	807	MKD	
MK

MADAGASCAR

Republic of Madagascar	450	MDG	
MG

MALAWI

Republic of Malawi	454	MWI	
MW

MALAYSIA

 	458	MYS	
MY

MALDIVES

Republic of Maldives	462	MDV	
MV

MALI

Republic of Mali	466	MLI	
ML

MALTA

Republic of Malta	470	MLT	
MT

MARSHALL ISLANDS

Republic of the Marshall Islands	584	MHL	
MH

MARTINIQUE

 	474	MTQ	
MQ

MAURITANIA

Islamic Republic of Mauritania	478	MRT	
MR

MAURITIUS

Republic of Mauritius	480	MUS	
MU

MAYOTTE

 	175	MYT	
YT

MEXICO

United Mexican States	484	MEX	
MX

MICRONESIA, FEDERATED STATES OF

Federated States of Micronesia	583	FSM	
FM

MOLDOVA, REPUBLIC OF

Republic of Moldova	498	MDA	
MD

MONACO

Principality of Monaco	492	MCO	
MC

MONGOLIA

 	496	MNG	
MN

MONTSERRAT

 	500	MSR	
MS

MOROCCO

Kingdom of Morocco	504	MAR	
MA

MOZAMBIQUE

Republic of Mozambique	508	MOZ	
MZ

MYANMAR

Union of Myanmar	104	MMR	
MM

NAMIBIA

Republic of Namibia	516	NAM	
NA

NAURU

Republic of Nauru	520	NRU	
NR

NEPAL

Kingdom of Nepal	524	NPL	
NP

NETHERLANDS

Kingdom of the Netherlands	528	NLD	
NL

NETHERLANDS ANTILLES

 	530	ANT	
AN

NEW CALEDONIA

 	540	NCL	
NC

NEW ZEALAND

 	554	NZL	
NZ

NICARAGUA

Republic of Nicaragua	558	NIC	
NI

NIGER

Republic of the Niger	562	NER	
NE

NIGERIA

Federal Republic of Nigeria	566	NGA	
NG

NIUE

 	570	NIU	
NU

NORFOLK ISLAND

 	574	NFK	
NF

NORTHERN MARIANA ISLANDS

Commonwealth of the Northern Mariana Islands	580	MNP	
MP

NORWAY

Kingdom of Norway	578	NOR	
NO

OMAN

Sultanate of Oman	512	OMN	
OM

PAKISTAN

Islamic Republic of Pakistan	586	PAK	
PK

PALAU

Republic of Palau	585	PLW	
PW

PALESTINIAN TERRITORY, OCCUPIED

Occupied Palestinian Territory	275	PSE	
PS

PANAMA

Republic of Panama	591	PAN	
PA

PAPUA NEW GUINEA

 	598	PNG	
PG

PARAGUAY

Republic of Paraguay	600	PRY	
PY

PERU

Republic of Peru	604	PER	
PE

PHILIPPINES

Republic of the Philippines	608	PHL	
PH

PITCAIRN

 	612	PCN	
PN

POLAND

Republic of Poland	616	POL	
PL

PORTUGAL

Portuguese Republic	620	PRT	
PT

PUERTO RICO

 	630	PRI	
PR

QATAR

State of Qatar	634	QAT	
QA

RÉUNION

 	638	REU	
RE

ROMANIA

 	642	ROM	
RO

RUSSIAN FEDERATION

 	643	RUS	
RU

RWANDA

Rwandese Republic	646	RWA	
RW

SAINT HELENA

 	654	SHN	
SH

SAINT KITTS AND NEVIS

 	659	KNA	
KN

SAINT LUCIA

 	662	LCA	
LC

SAINT PIERRE AND MIQUELON

 	666	SPM	
PM

SAINT VINCENT AND THE GRENADINES

 	670	VCT	
VC

SAMOA

Independent State of Samoa	882	WSM	
WS

SAN MARINO

Republic of San Marino	674	SMR	
SM

SÃO TOMÉ AND PRÍNCIPE

Democratic Republic of São Tomé and Príncipe	678	STP	
ST

SAUDI ARABIA

Kingdom of Saudi Arabia	682	SAU	
SA

SENEGAL

Republic of Senegal	686	SEN	
SN

SEYCHELLES

Republic of Seychelles	690	SYC	
SC

SIERRA LEONE

Republic of Sierra Leone	694	SLE	
SL

SINGAPORE

Republic of Singapore	702	SGP	
SG

SLOVAKIA

Slovak Republic	703	SVK	
SK

SLOVENIA

Republic of Slovenia	705	SVN	
SI

SOLOMON ISLANDS

 	090	SLB	
SB

SOMALIA

Somali Democratic Republic	706	SOM	
SO

SOUTH AFRICA

Republic of South Africa	710	ZAF	
ZA

SOUTH GEORGIA AND THE SOUTH SANDWICH ISLANDS

 	239	SGS	
GS

SPAIN

Kingdom of Spain	724	ESP	
ES

SRI LANKA

Democratic Socialist Republic of Sri Lanka	144	LKA	
LK

SUDAN

Republic of the Sudan	736	SDN	
SD

SURINAME

Republic of Suriname	740	SUR	
SR

SVALBARD AND JAN MAYEN

 	744	SJM	
SJ

SWAZILAND

Kingdom of Swaziland	748	SWZ	
SZ

SWEDEN

Kingdom of Sweden	752	SWE	
SE

SWITZERLAND

Swiss Confederation	756	CHE	
CH

SYRIAN ARAB REPUBLIC

 	760	SYR	
SY

TAIWAN, PROVINCE OF CHINA

 	158	TWN	
TW

TAJIKISTAN

Republic of Tajikistan	762	TJK	
TJ

TANZANIA, UNITED REPUBLIC OF

United Republic of Tanzania	834	TZA	
TZ

THAILAND

Kingdom of Thailand	764	THA	
TH

TOGO

Togolese Republic	768	TGO	
TG

TOKELAU

 	772	TKL	
TK

TONGA

Kingdom of Tonga	776	TON	
TO

TRINIDAD AND TOBAGO

Republic of Trinidad and Tobago	780	TTO	
TT

TUNISIA

Republic of Tunisia	788	TUN	
TN

TURKEY

Republic of Turkey	792	TUR	
TR

TURKMENISTAN

 	795	TKM	
TM

TURKS AND CAICOS ISLANDS

 	796	TCA	
TC

TUVALU

 	798	TUV	
TV

UGANDA

Republic of Uganda	800	UGA	
UG

UKRAINE

 	804	UKR	
UA

UNITED ARAB EMIRATES

 	784	ARE	
AE

UNITED KINGDOM

United Kingdom of Great Britain and Northern Ireland	826	GBR	
GB

UNITED STATES

United States of America	840	USA	
US

UNITED STATES MINOR OUTLYING ISLANDS

 	581	UMI	
UM

URUGUAY

Eastern Republic of Uruguay	858	URY	
UY

UZBEKISTAN

Republic of Uzbekistan	860	UZB	
UZ

VANUATU

Republic of Vanuatu	548	VUT	
VU

Vatican City State see HOLY SEE

VENEZUELA

Republic of Venezuela	862	VEN	
VE

VIET NAM

Socialist Republic of Viet Nam	704	VNM	
VN

VIRGIN ISLANDS, BRITISH

British Virgin Islands	092	VGB	
VG

VIRGIN ISLANDS, U.S.

Virgin Islands of the United States	850	VIR	
VI

WALLIS AND FUTUNA

 	876	WLF	
WF

WESTERN SAHARA

 	732	ESH	
EH

YEMEN

Republic of Yemen	887	YEM	
YE

YUGOSLAVIA

Federal Republic of Yugoslavia	891	YUG	
YU

Zaire see CONGO, THE DEMOCRATIC REPUBLIC OF THE

ZAMBIA

Republic of Zambia	894	ZMB	
ZM

ZIMBABWE

Republic of Zimbabwe	716	ZWE	
ZW

GGY GG
ALA AX
BLM BL
IMN IM
JEY JE
MNE ME
MAF MF
SRB RS
TKL TL

 	";

$regexp = "`\b([a-z]{3})\s+([a-z]{2})\b`is"; 

preg_match_all($regexp, $threeLetterCodes, $matches); // $matches word aangemaakt als multidim array


/**
 * in het eerste element van matches (0) staat een array van alle strings die de hele regexp matchen
 * in het element 1 staan de landcodes (eerste haakjes)
 * in element 2 staan de landen 
 */ 
$threeLetterCodesArray = array_combine($matches[2], $matches[1]);


// Climate zones
$climateZonesCSV = <<<CLIMATE
AFG;Afghanistan;0;0,467539;0;0;0;0,532461;2;0;0;0;0,1742093;0,2933297;0;0;0;0;0;0,532461;0;0;0;0;0,1755144;0,1480714;0;0;0;0;0;0;0,6764143;0;0;0;0;0;0
AGO;Angola;0,4941295;0,1582904;0,3475801;0;0;0;3;0;0;0,4941295;0,1225624;0,035728;0;0;0,3475801;0;0;0;0;0;0;0,4671562;0,1262113;0,1013397;0;0;0,3052929;0;0;0;0;0,4941295;0,4671562;0,8417096;0,7724491;0;0
ALB;Albania;0;0;1;0;0;0;1;0;0;0;0;0;0;1;0;0;0;0;0;0;0;0;0;0;0;1;0;0;0;0;0;0;0;0;0;1;1
ARE;United Arab Emirates;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;0;0;0;0;0;0;0;1;0;0;0;0;0;0;0;0;0;0;0;0;0
ARG;Argentina;0,0000457;0,4442494;0,3871189;0;0,0011424;0,1674435;5;0;0;0,0000457;0,2802789;0,1639705;0,2645865;0;0,1225324;0;0;0,1674435;0,0011424;0;0;0;0,0837514;0,084639;0,6189233;0;0,1137474;0;0;0,000478;0,0984609;0,0000457;0;0,122578;0,1137474;0,2645865;0,6189233
ARM;Armenia;0;0,0154597;0;0;0;0,9845403;2;0;0;0;0,0154597;0;0;0;0;0;0;0,9845403;0;0;0;0;0,0003092;0;0;0;0;0;0;0;0,9996908;0;0;0;0;0;0
AUS;Australia;0,0793232;0,7648172;0,1558596;0;0;0;3;0,0030718;0;0,0762514;0,3334604;0,4313568;0,1089642;0,038356;0,0085394;0;0;0;0;0,0057986;0;0,0136033;0,0356931;0,0092122;0,7700517;0,1601741;0,005467;0;0;0;0;0,0793232;0,0194019;0,0878626;0,0248688;0,1473202;0,9302258
AUT;Austria;0;0;0,8817299;0;0;0,1182701;2;0;0;0;0;0;0,8817299;0;0;0;0;0,1182701;0;0;0;0;0;0;0,8834484;0;0;0;0;0;0,1165516;0;0;0;0;0,8817299;0,8834484
AZE;Azerbaijan;0;0,3973325;0;0;0;0,6026675;2;0;0;0;0,3973325;0;0;0;0;0;0;0,6026675;0;0;0;0;0,3827528;0;0;0;0;0;0;0;0,6172472;0;0;0;0;0;0
BDI;Burundi;0,9689716;0;0;0;0;0,0310284;2;0;0;0,9689716;0;0;0;0;0;0;0;0,0310284;0;0;0;0,8795763;0;0;0;0;0;0;0;0;0,1204237;0,9689716;0,8795763;0,9689716;0,8795763;0;0
BEL;Belgium;0;0;1;0;0;0;1;0;0;0;0;0;1;0;0;0;0;0;0;0;0;0;0;0;1;0;0;0;0;0;0;0;0;0;0;1;1
BEN;Benin;0,4423535;0,5576466;0;0;0;0;2;0;0;0,4423535;0,5576466;0;0;0;0;0;0;0;0;0;0;0,7664312;0,2335688;0;0;0;0;0;0;0;0;0,4423535;0,7664312;0,4423535;0,7664312;0;0
BFA;Burkina Faso;0,1176683;0,8823317;0;0;0;0;2;0;0;0,1176683;0,8757343;0,0065974;0;0;0;0;0;0;0;0;0;0,0750634;0,9240543;0,0008823;0;0;0;0;0;0;0;0,1176683;0,0750634;0,1176683;0,0750634;0;0
BGD;Bangladesh;0,8674767;0;0,1325233;0;0;0;2;0;0,141067;0,7264097;0;0;0;0;0,1325233;0;0;0;0;0;0,057596;0,8626354;0;0;0;0;0,0797685;0;0;0;0;0,8674768;0,9202315;1;1;0;0
BGR;Bulgaria;0;0;0,9999999;0;0;0;1;0;0;0;0;0;0,9099272;0,0900727;0;0;0;0;0;0;0;0;0;0;0,9239088;0,0760913;0;0;0;0;0;0;0;0;0;1;1
BIH;Bosnia and Herzegovina;0;0;1;0;0;0;1;0;0;0;0;0;0,3017032;0,6982968;0;0;0;0;0;0;0;0;0;0;0,2444573;0,7555427;0;0;0;0;0;0;0;0;0;1;1
BLR;Byelarus;0;0;0;1;0;0;1;0;0;0;0;0;0;0;0;0;1;0;0;0;0;0;0;0;0;0;0;0;1;0;0;0;0;0;0;1;1
BLZ;Belize;1;0;0;0;0;0;1;0,694864;0;0,305136;0;0;0;0;0;0;0;0;0;0,6012593;0;0,3987407;0;0;0;0;0;0;0;0;0;1;1;1;1;0;0
BOL;Bolivia;0,4729627;0;0,1699255;0;0;0,3571118;3;0;0;0,4729627;0;0;0;0;0,1699255;0;0;0,3571118;0;0;0;0,1351221;0;0;0;0;0,139646;0;0;0;0,7252319;0,4729627;0,1351221;0,6428882;0,2747681;0;0
BRA;Brazil;0,8426988;0;0,1573012;0;0;0;2;0,1992994;0,0182954;0,625104;0;0;0,0540029;0;0,1032983;0;0;0;0;0,1779785;0,0334027;0,4157898;0;0;0,1566982;0;0,2161309;0;0;0;0;0,8426988;0,6271709;0,9459971;0,8433018;0,0540029;0,1566982
BRN;Brunei;1;0;0;0;0;0;1;1;0;0;0;0;0;0;0;0;0;0;0;1;0;0;0;0;0;0;0;0;0;0;0;1;1;1;1;0;0
BTN;Bhutan;0;0;0,6816406;0;0;0,3183594;2;0;0;0;0;0;0;0;0,6816406;0;0;0,3183594;0;0;0;0;0;0;0;0;0,865033;0;0;0;0,134967;0;0;0,6816406;0,865033;0;0
BWA;Botswana;0,0066155;0,9933844;0;0;0;0;2;0;0;0,0066155;0,9853362;0,0080482;0;0;0;0;0;0;0;0;0;0;0,9944273;0,0055727;0;0;0;0;0;0;0;0,0066155;0;0,0066155;0;0;0
CAF;Central African Republic;0,9562671;0,0437329;0;0;0;0;2;0,0064907;0;0,9497764;0,0437329;0;0;0;0;0;0;0;0;0,0048575;0;0,9862532;0,0088893;0;0;0;0;0;0;0;0;0,9562671;0,9911107;0,9562671;0,9911107;0;0
CAN;Canada;0;0,0215011;0,0119215;0,7054663;0,2268996;0,0342114;5;0;0;0;0,0215011;0;0,0073215;0,0046;0;0;0,7054663;0,0342114;0,2268996;0;0;0;0,0192221;0;0,0013683;0,0546809;0;0;0,8959739;0,0004651;0,0282898;0;0;0;0;0,7173879;0,952023
CHE;Switzerland;0;0;0,4421563;0;0;0,5578437;2;0;0;0;0;0;0,4421563;0;0;0;0;0,5578437;0;0;0;0;0;0;0,2687351;0;0;0;0;0;0,7312649;0;0;0;0;0,4421563;0,2687351
CHL;Chile;0;0,3135194;0,3082088;0;0,0289052;0,3493665;4;0;0;0;0,0300432;0,2834762;0,1781731;0,1300357;0;0;0;0,3493665;0,0289052;0;0;0;0,1573553;0,0905993;0,061927;0,5320435;0;0;0;0,0000969;0,157978;0;0;0;0;0,3082088;0,5939705
CHN;China;0,0031027;0,3369005;0,2378621;0,1714241;0;0,2507106;5;0;0,0022492;0,0008535;0,1572417;0,1796588;0,1234469;0;0,1144152;0,1714241;0;0,2507106;0;0;0,0028082;0,0019182;0,1407914;0,0141865;0,3173059;0;0,3044894;0,1909087;0;0;0,0275918;0,0031027;0,0047264;0,1175179;0,3092158;0,2948711;0,5082146
CIV;Ivory Coast;1;0;0;0;0;0;1;0,0050558;0;0,9949442;0;0;0;0;0;0;0;0;0;0,0056764;0;0,9943236;0;0;0;0;0;0;0;0;0;1;1;1;1;0;0
CMR;Cameroon;0,912844;0,087156;0;0;0;0;2;0,2373448;0;0,6754992;0,0738802;0,0132758;0;0;0;0;0;0;0;0,4772203;0;0,3258948;0,1860351;0,0108498;0;0;0;0;0;0;0;0,9128441;0,8031151;0,9128441;0,8031151;0;0
COG;Congo;1;0;0;0;0;0;1;0,5793192;0;0,4206808;0;0;0;0;0;0;0;0;0;0,1120818;0;0,8879182;0;0;0;0;0;0;0;0;0;1;1;1;1;0;0
COL;Colombia;0,8311759;0,0140107;0;0;0;0,1548134;3;0,5177635;0;0,3134124;0,0140107;0;0;0;0;0;0;0,1548134;0;0,1266081;0;0,4161033;0,0120638;0;0;0;0;0;0;0;0,4452248;0,8311759;0,5427114;0,8311759;0,5427114;0;0
CRI;Costa Rica;0,9999999;0;0;0;0;0;1;0,3639977;0;0,6360022;0;0;0;0;0;0;0;0;0;0,1313965;0;0,8686035;0;0;0;0;0;0;0;0;0;1;1;1;1;0;0
CUB;Cuba;1;0;0;0;0;0;1;0;0;1;0;0;0;0;0;0;0;0;0;0;0;1;0;0;0;0;0;0;0;0;0;1;1;1;1;0;0
CYP;Cyprus;0;0;1;0;0;0;1;0;0;0;0;0;0;1;0;0;0;0;0;0;0;0;0;0;0;1;0;0;0;0;0;0;0;0;0;1;1
CZE;Czech Republic;0;0;0,9878163;0,003124;0;0,0090597;3;0;0;0;0;0;0,9878163;0;0;0;0,003124;0,0090597;0;0;0;0;0;0;0,9928768;0;0;0;0,0004273;0;0,0066959;0;0;0;0;0,9909403;0,9933041
DEU;Germany;0;0;0,9473457;0;0;0,0526543;2;0;0;0;0;0;0,9473457;0;0;0;0;0,0526543;0;0;0;0;0;0;0,9610583;0;0;0;0;0;0,0389417;0;0;0;0;0,9473457;0,9610583
DJI;Djibouti;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;0;0;0;0;0;0;0;1;0;0;0;0;0;0;0;0;0;0;0;0;0
DNK;Denmark;0;0;1;0;0;0;1;0;0;0;0;0;1;0;0;0;0;0;0;0;0;0;0;0;1;0;0;0;0;0;0;0;0;0;0;1;1
DOM;Dominican Republic;1;0;0;0;0;0;1;0;0;1;0;0;0;0;0;0;0;0;0;0;0;1;0;0;0;0;0;0;0;0;0;1;1;1;1;0;0
DZA;Algeria;0;0,9380488;0,0619512;0;0;0;2;0;0;0;0,0637701;0,8742787;0;0,0619512;0;0;0;0;0;0;0;0;0,1857278;0,1486111;0;0,6656611;0;0;0;0;0;0;0;0;0;0,0619512;0,6656611
ECU;Ecuador;0,5125517;0;0;0;0;0,4874483;2;0,4203045;0;0,0922472;0;0;0;0;0;0;0;0,4874483;0;0,1264166;0;0,2496837;0;0;0;0;0;0;0;0;0,6238998;0,5125517;0,3761002;0,5125517;0,3761002;0;0
EGY;Egypt;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;0;0;0;0;0;0;0;1;0;0;0;0;0;0;0;0;0;0;0;0;0
ERI;Eritrea;0;0,8554774;0;0;0;0,1445227;2;0;0;0;0,2428509;0,6126265;0;0;0;0;0;0,1445227;0;0;0;0;0,2939798;0,5933483;0;0;0;0;0;0;0,1126719;0;0;0;0;0;0
ESP;Spain;0;0,0914382;0,8887184;0;0;0,0198434;3;0;0;0;0,0914382;0;0,2492327;0,6394857;0;0;0;0,0198434;0;0;0;0;0,0661649;0;0,3367518;0,595298;0;0;0;0;0,0017854;0;0;0;0;0,8887184;0,9320498
EST;Estonia;0;0;0;1;0;0;1;0;0;0;0;0;0;0;0;0;1;0;0;0;0;0;0;0;0;0;0;0;1;0;0;0;0;0;0;1;1
ETH;Ethiopia;0,2146411;0,2851167;0;0;0;0,5002422;3;0;0;0,2146411;0,2370982;0,0480185;0;0;0;0;0;0,5002422;0;0;0;0,0854961;0,0532307;0,0143194;0;0;0;0;0;0;0,8469538;0,2146411;0,0854961;0,2146411;0,0854961;0;0
FIN;Finland;0;0;0,0060071;0,9268497;0,0671432;0;3;0;0;0;0;0;0,0060071;0;0;0;0,9268497;0;0,0671432;0;0;0;0;0;0,0001975;0;0;0;0,9975436;0,0022588;0;0;0;0;0;0,9328568;0,9977412
FRA;France;0;0;0,9928532;0;0;0,0071468;2;0;0;0;0;0;0,9141461;0,0787071;0;0;0;0,0071468;0;0;0;0;0;0;0,9110209;0,0882477;0;0;0;0;0,0007314;0;0;0;0;0,9928532;0,9992686
GAB;Gabon;1;0;0;0;0;0;1;0,4394265;0;0,5605735;0;0;0;0;0;0;0;0;0;0,3132911;0;0,6867089;0;0;0;0;0;0;0;0;0;1;1;1;1;0;0
GBR;United Kingdom;0;0;1;0;0;0;1;0;0;0;0;0;1;0;0;0;0;0;0;0;0;0;0;0;1;0;0;0;0;0;0;0;0;0;0;1;1
GEO;Georgia;0;0;0,2343371;0,0186916;0;0,7469712;3;0;0;0;0;0;0,2343371;0;0;0;0,0186916;0,7469712;0;0;0;0;0;0;0,3255698;0;0;0;0,003949;0;0,6704813;0;0;0;0;0,2530287;0,3295188
GHA;Ghana;0,8288805;0,1711195;0;0;0;0;2;0;0;0,8288805;0,1711195;0;0;0;0;0;0;0;0;0;0;0,8884355;0,1115645;0;0;0;0;0;0;0;0;0,8288805;0,8884355;0,8288805;0,8884355;0;0
GIN;Guinea;0,9878578;0,0121422;0;0;0;0;2;0,084304;0;0,9035538;0,0121422;0;0;0;0;0;0;0;0;0,3469316;0;0,6496118;0,0034567;0;0;0;0;0;0;0;0;0,9878578;0,9965433;0,9878578;0,9965433;0;0
GMB;Gambia;0,992629;0,007371;0;0;0;0;2;0;0;0,992629;0,007371;0;0;0;0;0;0;0;0;0;0;1;0;0;0;0;0;0;0;0;0;0,992629;1;0,992629;1;0;0
GNB;Guinea-Bissau;1;0;0;0;0;0;1;0;0;1;0;0;0;0;0;0;0;0;0;0;0;1;0;0;0;0;0;0;0;0;0;1;1;1;1;0;0
GNQ;Equatorial Guinea;1;0;0;0;0;0;1;1;0;0;0;0;0;0;0;0;0;0;0;1;0;0;0;0;0;0;0;0;0;0;0;1;1;1;1;0;0
GRC;Greece;0;0;1;0;0;0;1;0;0;0;0;0;0,0882353;0,9117647;0;0;0;0;0;0;0;0;0;0;0,0843623;0,9156377;0;0;0;0;0;0;0;0;0;1;1
GRL;Greenland;0;0;0;0;1;0;1;0;0;0;0;0;0;0;0;0;0;0;1;0;0;0;0;0;0;0;0;0;0;1;0;0;0;0;0;0;0
GTM;Guatemala;0,6750174;0;0;0;0;0,3249826;2;0,4574345;0;0,2175829;0;0;0;0;0;0;0;0,3249826;0;0,0630821;0;0,6292787;0;0;0;0;0;0;0;0;0,3076392;0,6750174;0,6923609;0,6750174;0,6923609;0;0
GUF;French Guiana;1;0;0;0;0;0;1;1;0;0;0;0;0;0;0;0;0;0;0;1;0;0;0;0;0;0;0;0;0;0;0;1;1;1;1;0;0
GUY;Guyana;0,9999999;0;0;0;0;0;1;0,7888765;0;0,2111234;0;0;0;0;0;0;0;0;0;0,9588929;0;0,0411071;0;0;0;0;0;0;0;0;0;1;1;1;1;0;0
HND;Honduras;0,639791;0;0;0;0;0,360209;2;0,4692255;0;0,1705655;0;0;0;0;0;0;0;0,360209;0;0,427637;0;0,1377564;0;0;0;0;0;0;0;0;0,4346066;0,6397911;0,5653934;0,6397911;0,5653934;0;0
HRV;Croatia;0;0;1;0;0;0;1;0;0;0;0;0;0,5406176;0,4593824;0;0;0;0;0;0;0;0;0;0;0,6949833;0,3050167;0;0;0;0;0;0;0;0;0;1;1
HTI;Haiti;1;0;0;0;0;0;1;0;0;1;0;0;0;0;0;0;0;0;0;0;0;1;0;0;0;0;0;0;0;0;0;1;1;1;1;0;0
HUN;Hungary;0;0;0,7299061;0,2700939;0;0;2;0;0;0;0;0;0,7299061;0;0;0;0,2700939;0;0;0;0;0;0;0;0,7985587;0;0;0;0,2014413;0;0;0;0;0;0;1;1
IDN;Indonesia;0,8772684;0;0;0;0;0,1227315;2;0,6456813;0,1605862;0,0710009;0;0;0;0;0;0;0;0,1227315;0;0,7197705;0,0073882;0,1229941;0;0;0;0;0;0;0;0;0,1498472;0,8772685;0,8501528;0,8772685;0,8501528;0;0
IND;India;0,3409535;0,2772191;0,3154565;0;0;0,0663709;4;0;0,025079;0,3158745;0,1737603;0,1034588;0;0;0,3154565;0;0;0,0663709;0;0;0,0426325;0,3549015;0,2038985;0,0522905;0;0;0,3397969;0;0;0;0,0064801;0,3409535;0,397534;0,65641;0,737331;0;0
IRL;Ireland;0;0;1;0;0;0;1;0;0;0;0;0;1;0;0;0;0;0;0;0;0;0;0;0;1;0;0;0;0;0;0;0;0;0;0;1;1
IRN;Iran;0;0,7673501;0;0;0;0,2326499;2;0;0;0;0,3374495;0,4299006;0;0;0;0;0;0,2326499;0;0;0;0;0,4167363;0,2073083;0;0;0;0;0;0;0,3759554;0;0;0;0;0;0
IRQ;Iraq;0;0,9406798;0,0173371;0;0;0,041983;3;0;0;0;0,0987535;0,8419263;0;0,0173371;0;0;0;0,041983;0;0;0;0;0,1290126;0,8001244;0;0,0184795;0;0;0;0;0,0523834;0;0;0;0;0,0173371;0,0184795
ISL;Iceland;0;0;1;0;0;0;1;0;0;0;0;0;1;0;0;0;0;0;0;0;0;0;0;0;0,7615247;0;0;0;0;0,2384753;0;0;0;0;0;1;0,7615247
ISR;Israel;0;0,6134723;0,3865277;0;0;0;2;0;0;0;0,2085004;0,4049719;0;0,3865277;0;0;0;0;0;0;0;0;0,0952962;0,1639256;0;0,7407782;0;0;0;0;0;0;0;0;0;0,3865277;0,7407782
ITA;Italy;0;0;0,9693718;0;0;0,0306282;2;0;0;0;0;0;0,4010087;0,5683631;0;0;0;0,0306282;0;0;0;0;0;0;0,3661732;0,6016554;0;0;0;0;0,0321714;0;0;0;0;0,9693719;0,9678286
JAM;Jamaica;1;0;0;0;0;0;1;0;0;1;0;0;0;0;0;0;0;0;0;0;0;1;0;0;0;0;0;0;0;0;0;1;1;1;1;0;0
JOR;Jordan;0;0,9237004;0,0762996;0;0;0;2;0;0;0;0,1676915;0,7560089;0;0,0762996;0;0;0;0;0;0;0;0;0,4539317;0,1277676;0;0,4183007;0;0;0;0;0;0;0;0;0;0,0762996;0,4183007
JPN;Japan;0;0;0,5700609;0,4299391;0;0;2;0;0;0;0;0;0,5700609;0;0;0;0,4299391;0;0;0;0;0;0;0;0,7817271;0;0;0;0,2182729;0;0;0;0;0;0;1;1
KAZ;Kazakhstan;0;0,891443;0;0,0826067;0;0,0259503;3;0;0;0;0,4899313;0,4015117;0;0;0;0;0,0826067;0,0259503;0;0;0;0;0,5895468;0,1314774;0;0;0;0;0,1678837;0;0,1110921;0;0;0;0;0,0826067;0,1678837
KEN;Kenya;0,4907439;0,4123443;0;0;0;0,0969118;3;0;0;0,4907439;0,2615168;0,1508275;0;0;0;0;0;0,0969118;0;0;0;0,6160604;0,0384286;0,0094311;0;0;0;0;0;0;0,3360799;0,4907439;0,6160604;0,4907439;0,6160604;0;0
KGZ;Kyrgyzstan;0;0,1316091;0;0;0;0,8683909;2;0;0;0;0,1316091;0;0;0;0;0;0;0,8683909;0;0;0;0;0,1352286;0;0;0;0;0;0;0;0,8647714;0;0;0;0;0;0
KHM;Cambodia;0,9622746;0;0,0377255;0;0;0;2;0,2665565;0;0,6957181;0;0;0;0;0,0377255;0;0;0;0;0,3596175;0;0,6377872;0;0;0;0;0,0025952;0;0;0;0;0,9622746;0,9974047;1;1;0;0
KOR;Korea, Republic of;0;0;0,7634962;0,2365039;0;0;2;0;0;0;0;0;0,3093402;0;0,454156;0,2365039;0;0;0;0;0;0;0;0;0,2334847;0;0,262459;0,5040563;0;0;0;0;0;0,454156;0,262459;0,545844;0,7375411
KWT;Kuwait;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;0;0;0;0;0;0;0;1;0;0;0;0;0;0;0;0;0;0;0;0;0
LAO;Laos;0,4034841;0;0,5965159;0;0;0;2;0;0,0653538;0,3381303;0;0;0;0;0,5965159;0;0;0;0;0;0,0136;0,6503472;0;0;0;0;0,3360529;0;0;0;0;0,4034841;0,6639472;1;1;0;0
LBN;Lebanon;0;0;1;0;0;0;1;0;0;0;0;0;0;1;0;0;0;0;0;0;0;0;0;0;0;1;0;0;0;0;0;0;0;0;0;1;1
LBR;Liberia;1;0;0;0;0;0;1;0,4703775;0;0,5296225;0;0;0;0;0;0;0;0;0;0,5815023;0;0,4184977;0;0;0;0;0;0;0;0;0;1;1;1;1;0;0
LBY;Libya;0;0,9881201;0,0118799;0;0;0;2;0;0;0;0,0164026;0,9717175;0;0,0118799;0;0;0;0;0;0;0;0;0,2067023;0,4701528;0;0,3231449;0;0;0;0;0;0;0;0;0;0,0118799;0,3231449
LKA;Sri Lanka;1;0;0;0;0;0;1;0;0;1;0;0;0;0;0;0;0;0;0;0;0;1;0;0;0;0;0;0;0;0;0;1;1;1;1;0;0
LSO;Lesotho;0;0;1;0;0;0;1;0;0;0;0;0;0,9893355;0;0,0106645;0;0;0;0;0;0;0;0;0;0,9800513;0;0,0199487;0;0;0;0;0;0;0,0106645;0,0199487;0,9893355;0,9800513
LTU;Lithuania;0;0;0,1170997;0,8829004;0;0;2;0;0;0;0;0;0,1170997;0;0;0;0,8829004;0;0;0;0;0;0;0;0,1502431;0;0;0;0,8497569;0;0;0;0;0;0;1;1
LUX;Luxembourg;0;0;1;0;0;0;1;0;0;0;0;0;1;0;0;0;0;0;0;0;0;0;0;0;1;0;0;0;0;0;0;0;0;0;0;1;1
LVA;Latvia;0;0;0,1631177;0,8368823;0;0;2;0;0;0;0;0;0,1631177;0;0;0;0,8368823;0;0;0;0;0;0;0;0,1245477;0;0;0;0,8754523;0;0;0;0;0;0;1;1
MAR;Morocco;0;0,4080127;0,3911214;0;0;0,2008659;3;0;0;0;0,3047137;0,103299;0;0,3911214;0;0;0;0,2008659;0;0;0;0;0,1350146;0,0076517;0;0,7843296;0;0;0;0;0,0730041;0;0;0;0;0,3911214;0,7843296
MDA;Moldova;0;0,5799541;0,1071155;0,3129304;0;0;3;0;0;0;0,5799541;0;0,1071155;0;0;0;0,3129304;0;0;0;0;0;0,6201386;0;0,0757622;0;0;0;0,3040992;0;0;0;0;0;0;0,4200459;0,3798614
MDG;Madagascar;0,4839859;0,2119066;0,3041075;0;0;0;3;0,2405994;0;0,2433865;0,1592726;0,052634;0;0;0,3041075;0;0;0;0;0,2904444;0;0,1032782;0,0706723;0,0412682;0;0;0,4943368;0;0;0;0;0,4839859;0,3937226;0,7880934;0,8880595;0;0
MEX;Mexico;0,2018316;0,5256237;0,0372925;0;0;0,2352521;4;0,0437414;0;0,1580902;0,285786;0,2398377;0,0372925;0;0;0;0;0,2352521;0;0,0364557;0;0,1411793;0,1583741;0,0629904;0,0217976;0;0;0;0;0;0,5792028;0,2018316;0,177635;0,2018316;0,177635;0,0372925;0,0217976
MKD;Macedonia;0;0;1;0;0;0;1;0;0;0;0;0;0,8499516;0,1500484;0;0;0;0;0;0;0;0;0;0;0,7872745;0,2127255;0;0;0;0;0;0;0;0;0;1;1
MLI;Mali;0,0371712;0,9628287;0;0;0;0;2;0;0;0,0371712;0,2926458;0,6701829;0;0;0;0;0;0;0;0;0;0,0770625;0,8188373;0,1041002;0;0;0;0;0;0;0;0,0371712;0,0770625;0,0371712;0,0770625;0;0
MMR;Myanmar;0,4003596;0;0,3576265;0;0;0,2420138;3;0,1362332;0,1141589;0,1499675;0;0;0;0;0,3576265;0;0;0,2420138;0;0,218734;0,1854858;0,2099133;0;0;0;0;0,3368039;0;0;0;0,049063;0,4003596;0,6141331;0,7579861;0,950937;0;0
MNG;Mongolia;0;0,7364378;0;0,1704591;0;0,0931031;3;0;0;0;0,1738266;0,5626112;0;0;0;0,1704591;0;0,0931031;0;0;0;0;0,2563737;0,3264454;0;0;0;0,3133516;0;0;0,1038294;0;0;0;0;0,1704591;0,3133516
MON;Montenegro;0;0;1,0000001;0;0;0;1;0;0;0;0;0;0,1321429;0,8678572;0;0;0;0;0;0;0;0;0;0;0,0548941;0,9451059;0;0;0;0;0;0;0;0;0;1;1
MOZ;Mozambique;0,6281266;0,0965344;0,2753391;0;0;0;3;0;0;0,6281266;0,0965344;0;0,005324;0;0,2700151;0;0;0;0;0;0;0,7508733;0,0307574;0;0,0061174;0;0,2122518;0;0;0;0;0,6281266;0,7508733;0,8981416;0,9631252;0,005324;0,0061174
MRT;Mauritania;0;1;0;0;0;0;1;0;0;0;0,0984175;0,9015825;0;0;0;0;0;0;0;0;0;0;0,3219668;0,6780332;0;0;0;0;0;0;0;0;0;0;0;0;0
MWI;Malawi;0,0216119;0;0,9783881;0;0;0;2;0;0;0,0216119;0;0;0;0;0,9783881;0;0;0;0;0;0;0,0306086;0;0;0;0;0,9693914;0;0;0;0;0,0216119;0,0306086;1;1;0;0
MYS;Malaysia;0,832736;0;0;0;0;0,167264;2;0,832736;0;0;0;0;0;0;0;0;0;0,167264;0;0,9808868;0;0;0;0;0;0;0;0;0;0;0,0191132;0,832736;0,9808868;0,832736;0,9808868;0;0
NAM;Namibia;0,0004984;0,9995016;0;0;0;0;2;0;0;0,0004984;0,6356812;0,3638204;0;0;0;0;0;0;0;0;0;0;0,8985211;0,1014789;0;0;0;0;0;0;0;0,0004984;0;0,0004984;0;0;0
NER;Niger;0;1;0;0;0;0;1;0;0;0;0,2005582;0,7994418;0;0;0;0;0;0;0;0;0;0;0,8903007;0,1096993;0;0;0;0;0;0;0;0;0;0;0;0;0
NGA;Nigeria;0,7613238;0,2386762;0;0;0;0;2;0,1066549;0;0,6546689;0,1984322;0,040244;0;0;0;0;0;0;0;0,2513112;0;0,6062631;0,1353303;0,0070954;0;0;0;0;0;0;0;0,7613238;0,8575743;0,7613238;0,8575743;0;0
NIC;Nicaragua;0,7079345;0;0;0;0;0,2920655;2;0,389917;0;0,3180175;0;0;0;0;0;0;0;0,2920655;0;0,103454;0;0,5866083;0;0;0;0;0;0;0;0;0,3099377;0,7079345;0,6900623;0,7079345;0,6900623;0;0
NLD;Netherlands;0;0;1;0;0;0;1;0;0;0;0;0;1;0;0;0;0;0;0;0;0;0;0;0;1;0;0;0;0;0;0;0;0;0;0;1;1
NOR;Norway;0;0;0,5668651;0,1693664;0,1843592;0,0794093;4;0;0;0;0;0;0,5668651;0;0;0;0,1693664;0,0794093;0,1843592;0;0;0;0;0;0,421826;0;0;0;0,5116613;0,007949;0,0585638;0;0;0;0;0,7362314;0,9334873
NPL;Nepal;0;0;0,6267821;0;0;0,3732179;2;0;0;0;0;0;0;0;0,6267821;0;0;0,3732179;0;0;0;0;0;0;0;0;0,9414157;0;0;0;0,0585843;0;0;0,6267821;0,9414157;0;0
NZL;New Zealand;0;0;0,8922776;0;0;0,1077224;2;0;0;0;0;0;0,8922776;0;0;0;0;0,1077224;0;0;0;0;0;0;0,9890867;0;0;0;0;0;0,0109132;0;0;0;0;0,8922776;0,9890867
OMN;Oman;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;0;0;0;0;0;0;0;1;0;0;0;0;0;0;0;0;0;0;0;0;0
PAK;Pakistan;0;0,8031262;0,0357979;0;0;0,161076;3;0;0;0;0,2384502;0,564676;0;0;0,0357979;0;0;0,161076;0;0;0;0;0,3338833;0,5659258;0;0;0,0537387;0;0;0;0,0464521;0;0;0,0357979;0,0537387;0;0
PAN;Panama;1,0000001;0;0;0;0;0;1;0,7161;0;0,2839001;0;0;0;0;0;0;0;0;0;0,6675535;0;0,3324465;0;0;0;0;0;0;0;0;0;1;1;1;1;0;0
PER;Peru;0,4591457;0,118418;0,0855081;0;0;0,3369282;4;0,4114599;0;0,0476858;0;0,118418;0;0;0,0855081;0;0;0,3369282;0;0,066654;0;0,0617514;0;0,4680392;0;0;0,01173;0;0;0;0,3918254;0,4591457;0,1284055;0,5446538;0,1401355;0;0
PHL;Philippines;1;0;0;0;0;0;1;0;0,9258874;0,0741126;0;0;0;0;0;0;0;0;0;0;0,9651044;0,0348956;0;0;0;0;0;0;0;0;0;1;1;1;1;0;0
PNG;Papua New Guinea;0,7253582;0;0;0;0;0,2746418;2;0;0,612957;0,1124012;0;0;0;0;0;0;0;0,2746418;0;0;0,3999183;0,0906604;0;0;0;0;0;0;0;0;0,5094213;0,7253582;0,4905787;0,7253582;0,4905787;0;0
POL;Poland;0;0;0,4013099;0,564388;0;0,0343021;3;0;0;0;0;0;0,4013099;0;0;0;0,564388;0,0343021;0;0;0;0;0;0;0,3790033;0;0;0;0,5772578;0;0,0437389;0;0;0;0;0,9656979;0,956261
PRI;Puerto Rico;1;0;0;0;0;0;1;0;0;1;0;0;0;0;0;0;0;0;0;0;0;1;0;0;0;0;0;0;0;0;0;1;1;1;1;0;0
PRK;Korea, Democratic People's Republic;0;0;0;1;0;0;1;0;0;0;0;0;0;0;0;1;0;0;0;0;0;0;0;0;0;0;0;1;0;0;0;0;0;0;0;1;1
PRT;Portugal;0;0;1;0;0;0;1;0;0;0;0;0;0;1;0;0;0;0;0;0;0;0;0;0;0;1;0;0;0;0;0;0;0;0;0;1;1
PRY;Paraguay;0,2626645;0;0,7373355;0;0;0;2;0;0;0,2626645;0;0;0,0374969;0;0,6998386;0;0;0;0;0;0;0,0482626;0;0;0,0626537;0;0,8890837;0;0;0;0;0,2626645;0,0482626;0,9625031;0,9373463;0,0374969;0,0626537
QAT;Qatar;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;0;0;0;0;0;0;0;1;0;0;0;0;0;0;0;0;0;0;0;0;0
ROM;Romania;0;0,0030524;0,2667612;0,5775646;0;0,1526218;4;0;0;0;0,0030524;0;0,2667612;0;0;0;0,5775646;0,1526218;0;0;0;0;0;0;0,3336552;0;0;0;0,5437011;0;0,1226438;0;0;0;0;0,8443258;0,8773562
RUS;Russia;0;0,0286852;0,0035752;0,8675167;0,0776457;0,0225772;5;0;0;0;0,0285424;0,0001428;0,0035752;0;0;0,2503833;0,6171334;0,0225772;0,0776457;0;0;0;0,0609583;0,000101;0,0317815;0;0;0,0867417;0,8005372;0,0050413;0,0148388;0;0;0;0;0,8710919;0,9190605
RWA;Rwanda;0,7714808;0;0;0;0;0,2285192;2;0;0;0,7714808;0;0;0;0;0;0;0;0,2285192;0;0;0;0,641987;0;0;0;0;0;0;0;0;0,358013;0,7714808;0,641987;0,7714808;0,641987;0;0
SAU;Saudi Arabia;0;0,9814392;0;0;0;0,0185608;2;0;0;0;0,0000262;0,981413;0;0;0;0;0;0,0185608;0;0;0;0;0,0001262;0,8499755;0;0;0;0;0;0;0,1498983;0;0;0;0;0;0
SDN;Sudan;0,2189206;0,758946;0;0;0;0,0221334;3;0;0;0,2189206;0,2066821;0,5522639;0;0;0;0;0;0,0221334;0;0;0;0,1676743;0,3201886;0,4971716;0;0;0;0;0;0;0,0149654;0,2189206;0,1676743;0,2189206;0,1676743;0;0
SEN;Senegal;0,2727703;0,7272297;0;0;0;0;2;0;0;0,2727703;0,7272297;0;0;0;0;0;0;0;0;0;0;0,3193554;0,6806446;0;0;0;0;0;0;0;0;0,2727703;0,3193554;0,2727703;0,3193554;0;0
SLE;Sierra Leone;1;0;0;0;0;0;1;0,585833;0;0,414167;0;0;0;0;0;0;0;0;0;0,5773401;0;0,4226599;0;0;0;0;0;0;0;0;0;1;1;1;1;0;0
SLV;El Salvador;0,980464;0;0;0;0;0,019536;2;0;0;0,980464;0;0;0;0;0;0;0;0,019536;0;0;0;0,9976212;0;0;0;0;0;0;0;0;0,0023788;0,980464;0,9976212;0,980464;0,9976212;0;0
SOM;Somalia;0;1;0;0;0;0;1;0;0;0;0,5351105;0,4648895;0;0;0;0;0;0;0;0;0;0,0001884;0,4555654;0,5442463;0;0;0;0;0;0;0;0;0,0001884;0;0,0001884;0;0
SRB;Serbia;0;0;0,9971543;0,0028458;0;0;2;0;0;0;0;0;0,9823563;0,014798;0;0;0,0028458;0;0;0;0;0;0;0;0,9558704;0,0441296;0;0;0;0;0;0;0;0;0;1;1
SUR;Suriname;1;0;0;0;0;0;1;1;0;0;0;0;0;0;0;0;0;0;0;1;0;0;0;0;0;0;0;0;0;0;0;1;1;1;1;0;0
SVK;Slovakia;0;0;0,4008373;0,3547881;0;0,2443747;3;0;0;0;0;0;0,4008373;0;0;0;0,3547881;0,2443747;0;0;0;0;0;0;0,5108248;0;0;0;0,2979614;0;0,1912138;0;0;0;0;0,7556254;0,8087862
SVN;Slovenia;0;0;1;0;0;0;1;0;0;0;0;0;0,9767726;0,0232274;0;0;0;0;0;0;0;0;0;0;0,9765517;0,0234483;0;0;0;0;0;0;0;0;0;1;1
SWE;Sweden;0;0;0,260283;0,6896902;0,0500269;0;3;0;0;0;0;0;0,260283;0;0;0;0,6896902;0;0,0500269;0;0;0;0;0;0,420222;0;0;0;0,5775115;0,0022665;0;0;0;0;0;0,9499731;0,9977335
SWZ;Swaziland;0,0386905;0;0,9613095;0;0;0;2;0;0;0,0386905;0;0;0,8020833;0;0,1592262;0;0;0;0;0;0;0,0011474;0;0;0,6212916;0;0,377561;0;0;0;0;0,0386905;0,0011474;0,1979167;0,3787084;0,8020833;0,6212916
SYR;Syria;0;0,6658924;0,3341076;0;0;0;2;0;0;0;0,3281714;0,337721;0;0,3341076;0;0;0;0;0;0;0;0;0,2206961;0,1212273;0;0,6580766;0;0;0;0;0;0;0;0;0;0,3341076;0,6580766
TCD;Chad;0,0651321;0,9348678;0;0;0;0;2;0;0;0,0651321;0,1728711;0,7619967;0;0;0;0;0;0;0;0;0;0,2723894;0,4261924;0,3014182;0;0;0;0;0;0;0;0,0651321;0,2723894;0,0651321;0,2723894;0;0
TGO;Togo;0,685254;0,314746;0;0;0;0;2;0;0;0,685254;0,314746;0;0;0;0;0;0;0;0;0;0;0,7626328;0,2373671;0;0;0;0;0;0;0;0;0,685254;0,7626328;0,685254;0,7626328;0;0
THA;Thailand;0,9675045;0;0;0;0;0,0324956;2;0,206753;0;0,7607515;0;0;0;0;0;0;0;0,0324956;0;0,1597043;0;0,8327937;0;0;0;0;0;0;0;0;0,007502;0,9675045;0,992498;0,9675045;0,992498;0;0
TJK;Tajikistan;0;0,3028085;0;0;0;0,6971915;2;0;0;0;0,3028085;0;0;0;0;0;0;0,6971915;0;0;0;0;0,5218431;0,0017706;0;0;0;0;0;0;0,4763863;0;0;0;0;0;0
TKM;Turkmenistan;0;0,9889141;0;0;0;0,0110859;2;0;0;0;0,1884073;0,8005068;0;0;0;0;0;0,0110859;0;0;0;0;0,1535517;0,841045;0;0;0;0;0;0;0,0054033;0;0;0;0;0;0
TTO;Trinidad;1;0;0;0;0;0;1;0;1;0;0;0;0;0;0;0;0;0;0;0;1;0;0;0;0;0;0;0;0;0;0;1;1;1;1;0;0
TUN;Tunisia;0;0,7954973;0,2045028;0;0;0;2;0;0;0;0,1117176;0,6837797;0;0,2045028;0;0;0;0;0;0;0;0;0,1910523;0,2665299;0;0,5424178;0;0;0;0;0;0;0;0;0;0,2045028;0,5424178
TUR;Turkey;0;0,1688425;0,5041421;0;0;0,3270154;3;0;0;0;0,1688425;0;0,0223383;0,4818038;0;0;0;0,3270154;0;0;0;0;0,1410616;0;0,0266704;0,6406397;0;0;0;0;0,1916282;0;0;0;0;0,5041421;0,6673101
TWN;Taiwan;0,1004823;0;0,8995176;0;0;0;2;0;0,1004823;0;0;0;0,442926;0;0,4565916;0;0;0;0;0;0,0808565;0;0;0;0,3659884;0;0,5531551;0;0;0;0;0,1004823;0,0808565;0,557074;0,6340115;0,442926;0,3659884
TZA;Tanzania, United Republic of;0,841002;0,0694758;0,0895221;0;0;0;3;0;0;0,841002;0,0694758;0;0;0;0,0895221;0;0;0;0;0;0;0,8050136;0,0954441;0;0;0;0,0995423;0;0;0;0;0,841002;0,8050136;0,9305242;0,9045559;0;0
UGA;Uganda;0,973444;0;0;0;0;0,026556;2;0;0;0,973444;0;0;0;0;0;0;0;0,026556;0;0;0;0,9413198;0;0;0;0;0;0;0;0;0,0586802;0,973444;0,9413198;0,973444;0,9413198;0;0
UKR;Ukraine;0;0,4100309;0,0145873;0,5518277;0;0,0235541;4;0;0;0;0,4100309;0;0,0145873;0;0;0;0,5518277;0,0235541;0;0;0;0;0,4231974;0;0,0169081;0;0;0;0,5409532;0;0,0189413;0;0;0;0;0,566415;0,5578613
URY;Uruguay;0;0;1;0;0;0;1;0;0;0;0;0;1;0;0;0;0;0;0;0;0;0;0;0;1;0;0;0;0;0;0;0;0;0;0;1;1
USA;United States;0,0012686;0,2197938;0,3796523;0,2624938;0,0267032;0,1100883;6;0;0;0,0012686;0,1779687;0,0418251;0,3170021;0,0626502;0;0;0,2624938;0,1100883;0,0267032;0;0;0,0126913;0,0606109;0,0206329;0,5554283;0,1227386;0;0;0,201673;0,0000436;0,0261815;0,0012686;0,0126913;0,0012686;0,0126913;0,6421461;0,8798398
UZB;Uzbekistan;0;0,8770774;0;0;0;0,1229226;2;0;0;0;0,2037227;0,6733547;0;0;0;0;0;0,1229226;0;0;0;0;0,4124624;0,1950413;0;0;0;0;0;0;0,3924963;0;0;0;0;0;0
VEN;Venezuela;0,8022331;0,1539287;0;0;0;0,0438382;3;0,1123731;0,0004125;0,6894475;0,1196887;0,03424;0;0;0;0;0;0,0438382;0;0,0492034;6.17e-06;0,2437967;0,3394704;0,3356151;0;0;0;0;0;0;0,0319082;0,8022332;0,2930063;0,8022332;0,2930063;0;0
VNM;Vietnam;0,5145063;0;0,4854937;0;0;0;2;0,0010565;0,1403494;0,3731004;0;0;0;0;0,4854937;0;0;0;0;0,0017122;0,0844744;0,4247951;0;0;0;0;0,4890182;0;0;0;0;0,5145063;0,5109817;1;1;0;0
WSH;Western Sahara;0;1;0;0;0;0;1;0;0;0;0;1;0;0;0;0;0;0;0;0;0;0;0;1;0;0;0;0;0;0;0;0;0;0;0;0;0
YEM;Yemen;0;0,863429;0;0;0;0,136571;2;0;0;0;0;0,863429;0;0;0;0;0;0,136571;0;0;0;0;0;0,370899;0;0;0;0;0;0;0,629101;0;0;0;0;0;0
ZAF;South Africa;0,0058302;0,6502936;0,3438762;0;0;0;3;0;0;0,0058302;0,3695915;0,2807021;0,1749469;0,0191771;0,1497522;0;0;0;0;0;0;0,0062182;0,2111772;0,0159776;0,3403365;0,0665926;0,3596979;0;0;0;0;0,0058302;0,0062182;0,1555824;0,365916;0,194124;0,4069292
ZAR;Zaire;0,882336;0;0,0730218;0;0;0,0446422;3;0,3896734;0;0,4926626;0;0;0;0;0,0730218;0;0;0,0446422;0;0,2020101;0;0,5932324;0;0;0;0;0,0715974;0;0;0;0,1331601;0,882336;0,7952424;0,9553578;0,8668398;0;0
ZMB;Zambia;0,0239613;0,1363726;0,8396661;0;0;0;3;0;0;0,0239613;0,1363726;0;0;0;0,8396661;0;0;0;0;0;0;0,0191676;0,2825918;0;0;0;0,6982406;0;0;0;0;0,0239613;0,0191676;0,8636274;0,7174082;0;0
ZWE;Zimbabwe;0;0,5615092;0,4384908;0;0;0;2;0;0;0;0,5615092;0;0;0;0,4384908;0;0;0;0;0;0;0;0,3954933;0;0;0;0,6045067;0;0;0;0;0;0;0,4384908;0,6045067;0;0
CLIMATE;

$climateZonesArr = array();

foreach(split("\n",$climateZonesCSV) as $line){
    $fields = split(';',$line);
    $climateZonesArr[$fields[0]] = array(join(';',array_slice($fields,2,7)));
}


/// Continents
$continentsString = "'AF':'AS','AL':'EU','AQ':'AN','DZ':'AF','AS':'OC','AD':'EU','AO':'AF','AG':'NA','AZ':'EU','AZ':'AS','AR':'SA','AU':'OC','AT':'EU','BS':'NA','BH':'AS','BD':'AS','AM':'EU','AM':'AS','BB':'NA','BE':'EU','BM':'NA','BT':'AS','BO':'SA','BA':'EU','BW':'AF','BV':'AN','BR':'SA','BZ':'NA','IO':'AS','SB':'OC','VG':'NA','BN':'AS','BG':'EU','MM':'AS','BI':'AF','BY':'EU','KH':'AS','CM':'AF','CA':'NA','CV':'AF','KY':'NA','CF':'AF','LK':'AS','TD':'AF','CL':'SA','CN':'AS','TW':'AS','CX':'AS','CC':'AS','CO':'SA','KM':'AF','YT':'AF','CG':'AF','CD':'AF','CK':'OC','CR':'NA','HR':'EU','CU':'NA','CY':'EU','CY':'AS','CZ':'EU','BJ':'AF','DK':'EU','DM':'NA','DO':'NA','EC':'SA','SV':'NA','GQ':'AF','ET':'AF','ER':'AF','EE':'EU','FO':'EU','FK':'SA','GS':'AN','FJ':'OC','FI':'EU','AX':'EU','FR':'EU','GF':'SA','PF':'OC','TF':'AN','DJ':'AF','GA':'AF','GE':'EU','GE':'AS','GM':'AF','PS':'AS','DE':'EU','GH':'AF','GI':'EU','KI':'OC','GR':'EU','GL':'NA','GD':'NA','GP':'NA','GU':'OC','GT':'NA','GN':'AF','GY':'SA','HT':'NA','HM':'AN','VA':'EU','HN':'NA','HK':'AS','HU':'EU','IS':'EU','IN':'AS','ID':'AS','IR':'AS','IQ':'AS','IE':'EU','IL':'AS','IT':'EU','CI':'AF','JM':'NA','JP':'AS','KZ':'EU','KZ':'AS','JO':'AS','KE':'AF','KP':'AS','KR':'AS','KW':'AS','KG':'AS','LA':'AS','LB':'AS','LS':'AF','LV':'EU','LR':'AF','LY':'AF','LI':'EU','LT':'EU','LU':'EU','MO':'AS','MG':'AF','MW':'AF','MY':'AS','MV':'AS','ML':'AF','MT':'EU','MQ':'NA','MR':'AF','MU':'AF','MX':'NA','MC':'EU','MN':'AS','MD':'EU','ME':'EU','MS':'NA','MA':'AF','MZ':'AF','OM':'AS','NA':'AF','NR':'OC','NP':'AS','NL':'EU','AN':'NA','CW':'NA','AW':'NA','SX':'NA','BQ':'NA','NC':'OC','VU':'OC','NZ':'OC','NI':'NA','NE':'AF','NG':'AF','NU':'OC','NF':'OC','NO':'EU','MP':'OC','UM':'OC','UM':'NA','FM':'OC','MH':'OC','PW':'OC','PK':'AS','PA':'NA','PG':'OC','PY':'SA','PE':'SA','PH':'AS','PN':'OC','PL':'EU','PT':'EU','GW':'AF','TL':'AS','PR':'NA','QA':'AS','RE':'AF','RO':'EU','RU':'EU','RU':'AS','RW':'AF','BL':'NA','SH':'AF','KN':'NA','AI':'NA','LC':'NA','MF':'NA','PM':'NA','VC':'NA','SM':'EU','ST':'AF','SA':'AS','SN':'AF','RS':'EU','SC':'AF','SL':'AF','SG':'AS','SK':'EU','VN':'AS','SI':'EU','SO':'AF','ZA':'AF','ZW':'AF','ES':'EU','EH':'AF','SD':'AF','SR':'SA','SJ':'EU','SZ':'AF','SE':'EU','CH':'EU','SY':'AS','TJ':'AS','TH':'AS','TG':'AF','TK':'OC','TO':'OC','TT':'NA','AE':'AS','TN':'AF','TR':'EU','TR':'AS','TM':'AS','TC':'NA','TV':'OC','UG':'AF','UA':'EU','MK':'EU','EG':'AF','GB':'EU','GG':'EU','JE':'EU','IM':'EU','TZ':'AF','US':'NA','VI':'NA','BF':'AF','UY':'SA','UZ':'AS','VE':'SA','WF':'OC','WS':'OC','YE':'AS','ZM':'AF',";


$regexp = "`'(\w{2})':'(\w{2})',`s"; 

preg_match_all($regexp, $continentsString, $matches); // $matches word aangemaakt als multidim array

/**
 * in het eerste element van matches (0) staat een array van alle strings die de hele regexp matchen
 * in het element 1 staan de landcodes (eerste haakjes)
 * in element 2 staan de landen 
 */ 
$continents = array_combine($matches[1], $matches[2]);


//print_r($climateZonesArr);


$combined = array();
$records = "";

foreach ($countries as $code=>$name) {
    $name = utf8_decode($name); 
    $continent = $continents[$code];
    if(!isset($threeLetterCodesArray[$code])){
        $threeLetterCodesArray[$code] = '?';
    }
        
    
    $threeletter = $threeLetterCodesArray[$code];
    if(!isset($climateZonesArr[$threeletter])){
        $climateZonesArr[$threeletter] = '?';
    }
    
    $combined[$code] = array($code, $threeletter, $name, $continent);
    $climateString = '0;0;0;0;0;0;0';
    if(is_array($climateZonesArr[$threeletter])){
        $climateString = utf8_decode(str_replace(',',',',join(';',$climateZonesArr[$threeletter])));
    }
    $records .= join(";",$combined[$code]).';'.$climateString."\n";
    
    unset($continents[$code]);
    if($threeLetterCodesArray[$code]!='?'){
        unset($threeLetterCodesArray[$code]);
    }
    if($climateZonesArr[$threeletter]!='?'){
        unset($climateZonesArr[$threeletter]);
    }else{
        $climateZonesArr[$threeletter] = $name ;
    }
}

echo ($records);


//print_r($combined);
//print_r($continents);
//print_r($threeLetterCodesArray);
//print_r($climateZonesArr);
